home *** CD-ROM | disk | FTP | other *** search
/ Tech Win 1995 November / CD [TECH_B].bin / tech_b / delphi / trial / disk4 / mdiapp.pak / MAIN.PAS < prev    next >
Encoding:
Pascal/Delphi Source File  |  1995-08-08  |  5.1 KB  |  196 lines

  1. unit Main;
  2.  
  3. interface
  4.  
  5. uses WinTypes, WinProcs, SysUtils, Classes, Graphics, Forms, Controls, Menus,
  6.   StdCtrls, Dialogs, Buttons, Messages, ExtCtrls;
  7.  
  8. type
  9.   TMainForm = class(TForm)
  10.     MainMenu1: TMainMenu;
  11.     Panel1: TPanel;
  12.     StatusLine: TPanel;
  13.     File1: TMenuItem;
  14.     FileNewItem: TMenuItem;
  15.     FileOpenItem: TMenuItem;
  16.     Panel2: TPanel;
  17.     FileCloseItem: TMenuItem;
  18.     Window1: TMenuItem;
  19.     Help1: TMenuItem;
  20.     N1: TMenuItem;
  21.     FileExitItem: TMenuItem;
  22.     WindowCascadeItem: TMenuItem;
  23.     WindowTileItem: TMenuItem;
  24.     WindowArrangeItem: TMenuItem;
  25.     HelpAboutItem: TMenuItem;
  26.     OpenDialog: TOpenDialog;
  27.     FileSaveItem: TMenuItem;
  28.     FileSaveAsItem: TMenuItem;
  29.     Edit1: TMenuItem;
  30.     CutItem: TMenuItem;
  31.     CopyItem: TMenuItem;
  32.     PasteItem: TMenuItem;
  33.     WindowMinimizeItem: TMenuItem;
  34.     SpeedPanel: TPanel;
  35.     OpenBtn: TSpeedButton;
  36.     SaveBtn: TSpeedButton;
  37.     CutBtn: TSpeedButton;
  38.     CopyBtn: TSpeedButton;
  39.     PasteBtn: TSpeedButton;
  40.     ExitBtn: TSpeedButton;
  41.     procedure FormCreate(Sender: TObject);
  42.     procedure FileNewItemClick(Sender: TObject);
  43.     procedure WindowCascadeItemClick(Sender: TObject);
  44.     procedure UpdateMenuItems(Sender: TObject);
  45.     procedure WindowTileItemClick(Sender: TObject);
  46.     procedure WindowArrangeItemClick(Sender: TObject);
  47.     procedure FileCloseItemClick(Sender: TObject);
  48.     procedure FileOpenItemClick(Sender: TObject);
  49.     procedure FileExitItemClick(Sender: TObject);
  50.     procedure FileSaveItemClick(Sender: TObject);
  51.     procedure FileSaveAsItemClick(Sender: TObject);
  52.     procedure CutItemClick(Sender: TObject);
  53.     procedure CopyItemClick(Sender: TObject);
  54.     procedure PasteItemClick(Sender: TObject);
  55.     procedure WindowMinimizeItemClick(Sender: TObject);
  56.     procedure FormDestroy(Sender: TObject);
  57.   private
  58.     { Private 宣言 }
  59.     procedure CreateMDIChild(const Name: string);
  60.     procedure ShowHint(Sender: TObject);
  61.   public
  62.     { Public 宣言 }
  63.   end;
  64.  
  65. var
  66.   MainForm: TMainForm;
  67.  
  68. implementation
  69.  
  70. {$R *.DFM}
  71.  
  72. uses ChildWin;
  73.  
  74. procedure TMainForm.FormCreate(Sender: TObject);
  75. begin
  76.   Application.OnHint := ShowHint;
  77.   Screen.OnActiveFormChange := UpdateMenuItems;
  78. end;
  79.  
  80. procedure TMainForm.ShowHint(Sender: TObject);
  81. begin
  82.   StatusLine.Caption := Application.Hint;
  83. end;
  84.  
  85. procedure TMainForm.CreateMDIChild(const Name: string);
  86. var
  87.   Child: TMDIChild;
  88. begin
  89.   { create a new MDI child window }
  90.   { MDI 子ウィンドウの作成 }
  91.   Child := TMDIChild.Create(Application);
  92.   Child.Caption := Name;
  93. end;
  94.  
  95. procedure TMainForm.FileNewItemClick(Sender: TObject);
  96. begin
  97.   CreateMDIChild('NONAME' + IntToStr(MDIChildCount + 1));
  98. end;
  99.  
  100. procedure TMainForm.FileOpenItemClick(Sender: TObject);
  101. begin
  102.   if OpenDialog.Execute then
  103.     CreateMDIChild(OpenDialog.FileName);
  104. end;
  105.  
  106. procedure TMainForm.FileCloseItemClick(Sender: TObject);
  107. begin
  108.   if ActiveMDIChild <> nil then
  109.     ActiveMDIChild.Close;
  110. end;
  111.  
  112. procedure TMainForm.FileSaveItemClick(Sender: TObject);
  113. begin
  114.   { save current file (ActiveMDIChild points to the window) }
  115.   { (ActiveMDIChild が示すウィンドウの) ファイルの保存  }
  116. end;
  117.  
  118. procedure TMainForm.FileSaveAsItemClick(Sender: TObject);
  119. begin
  120.   { save current file under new name }
  121.   { 新しい名前で保存 }
  122. end;
  123.  
  124. procedure TMainForm.FileExitItemClick(Sender: TObject);
  125. begin
  126.   Close;
  127. end;
  128.  
  129. procedure TMainForm.CutItemClick(Sender: TObject);
  130. begin
  131.   {cut selection to clipboard}
  132.   {選択範囲を切り取りクリップボードへコピー}
  133. end;
  134.  
  135. procedure TMainForm.CopyItemClick(Sender: TObject);
  136. begin
  137.   {copy selection to clipboard}
  138.   {選択範囲をクリップボードへコピー}
  139. end;
  140.  
  141. procedure TMainForm.PasteItemClick(Sender: TObject);
  142. begin
  143.   {paste from clipboard}
  144.   {クリップボードから貼り付ける}
  145. end;
  146.  
  147. procedure TMainForm.WindowCascadeItemClick(Sender: TObject);
  148. begin
  149.   Cascade;
  150. end;
  151.  
  152. procedure TMainForm.WindowTileItemClick(Sender: TObject);
  153. begin
  154.   Tile;
  155. end;
  156.  
  157. procedure TMainForm.WindowArrangeItemClick(Sender: TObject);
  158. begin
  159.   ArrangeIcons;
  160. end;
  161.  
  162. procedure TMainForm.WindowMinimizeItemClick(Sender: TObject);
  163. var
  164.   I: Integer;
  165. begin
  166.   { Must be done backwards through the MDIChildren array }
  167.   { MDIChildren 配列を逆順に処理する }
  168.   for I := MDIChildCount - 1 downto 0 do
  169.     MDIChildren[I].WindowState := wsMinimized;
  170. end;
  171.  
  172. procedure TMainForm.UpdateMenuItems(Sender: TObject);
  173. begin
  174.   FileCloseItem.Enabled := MDIChildCount > 0;
  175.   FileSaveItem.Enabled := MDIChildCount > 0;
  176.   FileSaveAsItem.Enabled := MDIChildCount > 0;
  177.   CutItem.Enabled := MDIChildCount > 0;
  178.   CopyItem.Enabled := MDIChildCount > 0;
  179.   PasteItem.Enabled := MDIChildCount > 0;
  180.   SaveBtn.Enabled := MDIChildCount > 0;
  181.   CutBtn.Enabled := MDIChildCount > 0;
  182.   CopyBtn.Enabled := MDIChildCount > 0;
  183.   PasteBtn.Enabled := MDIChildCount > 0;
  184.   WindowCascadeItem.Enabled := MDIChildCount > 0;
  185.   WindowTileItem.Enabled := MDIChildCount > 0;
  186.   WindowArrangeItem.Enabled := MDIChildCount > 0;
  187.   WindowMinimizeItem.Enabled := MDIChildCount > 0;
  188. end;
  189.  
  190. procedure TMainForm.FormDestroy(Sender: TObject);
  191. begin
  192.   Screen.OnActiveFormChange := nil;
  193. end;
  194.  
  195. end.
  196.